package com.jiyun.orders.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 订单基础信息表
 * </p>
 *
 * @author 1823.
 * @since 2025-02-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("orders")
public class Orders implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 订单编号
     */
    private String orderId;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 客户编码
     */
    private String customerCode;

    /**
     * 始发地
     */
    private String origin;

    /**
     * 目的地
     */
    private String destination;

    /**
     * 合同
     */
    private String contract;

    /**
     * 运输类型
     */
    private String transportationType;

    /**
     * 货物类型
     */
    private String goodsType;

    /**
     * 订单来源
     */
    private String orderSource;

    /**
     * 订单状态
     */
    private Integer orderStatus;

    /**
     * 下单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date orderTime;

    /**
     * 费用外键
     */
    private Integer fid;

    /**
     * 费用合计
     */
    @TableField(exist = false)
    private BigDecimal totalFee;


    /**
     * 货物外键
     */
    private String gid;

    /**
     * 数量
     */
    @TableField(exist = false)
    private Integer quantity;

    /**
     * 体积（m³）
     */
    @TableField(exist = false)
    private BigDecimal volume;

    /**
     * 重量（kg）
     */
    @TableField(exist = false)
    private BigDecimal weight;

    /**
     * 付款外键
     */
    private Integer payId;

    /**
     * 车辆外键
     */
    private Integer vehId;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 收货人
     */
    private String consignee;

    /**
     * 发货人
     */
    private String shipper;


    /**
     * 地址外键
     */
    private Integer regId;

    /**
     * 用户外键
     */

    private Integer uid;

    @TableField(exist = false)
    private String name;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

}
